#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Generic;
namespace Cephei.QL.Math.Distributions
{
     // <summary> 
	// ! Given x between zero and one as the integral value of a gaussian normal distribution this class provides the value y such that formula here ...  It uses Beasly and Springer approximation, with an improved approximation for the tails. See Boris Moro, "The Full Monte", 1995, Risk Magazine.  This class can also be used to generate a gaussian normal distribution from a uniform distribution. This is especially useful when a gaussian normal distribution is generated from a low discrepancy uniform distribution: in this case the traditional Box-Muller approach and its variants would not preserve the sequence's low-discrepancy.  Peter J. Acklam's approximation is better and is available as QuantLib::InverseCumulativeNormal
	// </summary>
    [Guid ("80899B3C-41E5-4b80-B131-A335613FE188"),ComVisible(true)]
	public interface IMoroInverseCumulativeNormal 
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
    }

    // <summary> 
	// ! Given x between zero and one as the integral value of a gaussian normal distribution this class provides the value y such that formula here ...  It uses Beasly and Springer approximation, with an improved approximation for the tails. See Boris Moro, "The Full Monte", 1995, Risk Magazine.  This class can also be used to generate a gaussian normal distribution from a uniform distribution. This is especially useful when a gaussian normal distribution is generated from a low discrepancy uniform distribution: in this case the traditional Box-Muller approach and its variants would not preserve the sequence's low-discrepancy.  Peter J. Acklam's approximation is better and is available as QuantLib::InverseCumulativeNormal Factory
	// </summary>
   	[ComVisible(true)]
    public interface IMoroInverseCumulativeNormal_Factory // : Collection_Factory<IMoroInverseCumulativeNormal, ICell<IMoroInverseCumulativeNormal>>
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        
	    IMoroInverseCumulativeNormal Create (Microsoft.FSharp.Core.FSharpOption<Double> average, Microsoft.FSharp.Core.FSharpOption<Double> sigma);
    }
}

